برنامه نویسی
نحوه به روز رسانی خودکار رزومه در سایت شخصی خود از OverLeaf
من در مورد شما نمی دانم، اما من با پیگیری صدها تکرار رزومه خود و به روز نگه داشتن وب سایت خود با جدیدترین مورد مشکل دارم. بنابراین فکر کردم آن را خودکار کنم.
این پست توضیح می دهد که چگونه به طور خودکار رزومه خود را از OverLeaf در وب سایت شخصی خود به روز کنید. این پست مخصوص کاربران پولی OverLeaf است زیرا یک ویژگی پولی برای انتقال از OverLeaf به GitHub است.
- منوی کشویی را در قسمت بالای سمت چپ پروژه خود باز کنید. همانطور که در تصویر زیر نشان داده شده است، یک کشویی ایجاد می کند. روی همگام سازی با گیت هاب کلیک کنید.
- یک نام مخزن و توضیحات مختصری برای مخزن وارد کنید و آن را ایجاد کنید.
- به GitHub بروید تا یک مخزن جدید ببینید که در آن فقط فایل لاتکس شما از OverLeaf باید وجود داشته باشد. در این مخزن مانند تصویر زیر به تب Actions در بالا بروید
- یک گردش کار جدید ایجاد کنید و سپس کد زیر را وارد کنید. این کد با هر بار فشار دادن به این مخزن، نسخه PDF فایل لاتکس را ایجاد می کند. هر فشار یک نسخه جدید از آخرین تکرار رزومه شما ایجاد می کند، و این یک مصنوع خواهد بود که به آن متصل است. ممکن است با یک خطا بر اساس مجوز GitHub Action مواجه شوید اما این موضوع در این پست به خوبی توضیح داده شده است.
name: Build LaTeX document
on: [push]
jobs:
build_latex:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v2
- name: Compile LaTeX document
uses: xu-cheng/latex-action@v2
with:
root_file: main.tex
- name: Uploading artifact
uses: actions/upload-artifact@v2
with:
name: PDF
path: main.pdf
- name: Get Time
id: time
uses: nanzm/get-time-action@v1.1
with:
timeZone: -5
format: 'YYYY-MM-DD-HH-mm-ss'
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
with:
name: Resume compiled on ${{ steps.time.outputs.time }}
tag_name: ${{ steps.time.outputs.time }}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./main.pdf
asset_name: resume-${{ steps.time.outputs.time }}.pdf
asset_content_type: application/pdf
- به برنامه خود بروید، جایی که لینک دانلود رزومه شما وجود دارد. ما از API Graphql GitHub برای بازیابی URL دانلود نسخه PDF رزومه شما استفاده خواهیم کرد. Space Jelly کد زیر را به خوبی توضیح می دهد. این در بالای مولفه Navbar React پروژه شخصی من قرار گرفت.
const [downloadableResume, setDownloadableResume] = useState();
const baseUrl = "https://api.github.com/graphql";
const httpLink = createHttpLink({
uri: baseUrl,
});
const authLink = setContext((_, { headers }) => {
return {
headers: {
...headers,
authorization: `Bearer $${process.env.GITHUB_ACCESS_TOKEN}`,
},
};
});
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache(),
});
useEffect(() => {
client.query({
query: gql`
{
viewer {
login
}
repository(name: "resume", owner: "dessygil") {
id
releases(first: 1) {
edges {
node {
id
releaseAssets(first: 1) {
edges {
node {
downloadUrl
}
}
}
}
}
}
}
}
`,
})
.then((response) => {
setDownloadableResume(response.data.repository.releases.edges[0].node.releaseAssets.edges[0].node.downloadUrl);
});
}, []);
این باید تمام چیزی باشد که برای ایجاد یک خط لوله کاملاً خودکار برای وب سایت شخصی خود نیاز دارید. اگر مورد دیگری وجود دارد که دوست دارید به این پست اضافه شود، لطفاً در تماس باشید.