Metadata in PDF files can be stored in at least two places:
- the Info Dictionary, a limited set of key/value pairs
- XMP packets, which contain RDF statements expressed as XML
| <!doctype html> | |
| <title>Site Maintenance</title> | |
| <style> | |
| body { text-align: center; padding: 150px; } | |
| h1 { font-size: 50px; } | |
| body { font: 20px Helvetica, sans-serif; color: #333; } | |
| article { display: block; text-align: left; width: 650px; margin: 0 auto; } | |
| a { color: #dc8100; text-decoration: none; } | |
| a:hover { color: #333; text-decoration: none; } | |
| </style> |
| { | |
| "defaultAction": "SCMP_ACT_ERRNO", | |
| "archMap": [ | |
| { | |
| "architecture": "SCMP_ARCH_X86_64", | |
| "subArchitectures": [ | |
| "SCMP_ARCH_X86", | |
| "SCMP_ARCH_X32" | |
| ] | |
| }, |
| <template> | |
| <div :id="uppyId"> | |
| <div class="ThumbnailContainer" v-if="collection === 'thumbnail'"> | |
| <button id="open-thumbnail-modal" class="button">Select file</button> | |
| </div> | |
| <div class="DashboardContainer" v-else></div> | |
| </div> | |
| </template> |
| <template> | |
| <div :id="uppyId"> | |
| <div v-show="collection" class="DashboardContainer"/> | |
| <div v-show="!collection" class="ThumbnailContainer"> | |
| <button id="open-thumbnail-modal" type="button" class="btn btn-primary" >Select File{{ collection ? 's' : '' }}</button> | |
| </div> | |
| </div> | |
| </template> | |
| <script> |
| <template> | |
| <div :id="uppyId"> | |
| <div class="uppyFileInput" /> | |
| </div> | |
| </template> | |
| <script> | |
| import uppy from "@uppy/core"; | |
| import XHRUpload from "@uppy/xhr-upload"; | |
| import FileInput from "@uppy/file-input"; |
| /* | |
| * Invokes que submission of the main task form, via a button placed outside the form. | |
| * Also, requests for confirmation after the form validation passes correctly. | |
| * @author: Jonathan Vargas | |
| */ | |
| function triggerTaskFormSubmit () | |
| { | |
| // Finds required objects | |
| var completeButton = jQuery ('button.btn-task-form')[0]; | |
| var mainTaskForm = jQuery('form.main-task-form'); |
| const redisClient = redis.createClient(REDIS_URL); | |
| const listeners = Object.create(null); | |
| function addListener(channel, listener) { | |
| if (!listeners[channel]) { | |
| listeners[channel] = []; | |
| redisClient.subscribe(channel); | |
| } | |
| listeners[channel].push(listener); |
| #!/bin/sh | |
| # Converts a mysqldump file into a Sqlite 3 compatible file. It also extracts the MySQL `KEY xxxxx` from the | |
| # CREATE block and create them in separate commands _after_ all the INSERTs. | |
| # Awk is choosen because it's fast and portable. You can use gawk, original awk or even the lightning fast mawk. | |
| # The mysqldump file is traversed only once. | |
| # Usage: $ ./mysql2sqlite mysqldump-opts db-name | sqlite3 database.sqlite | |
| # Example: $ ./mysql2sqlite --no-data -u root -pMySecretPassWord myDbase | sqlite3 database.sqlite |
| #!/usr/bin/env bash | |
| ############################################################################## | |
| #### MIME interface | |
| ############################################################################## | |
| # Parse message in MIME format and create a temporary cache directory | |
| mime_parse() | |
| { | |
| MIME_CACHE=${MIME_CACHE:-`mktemp -d ${BIN}.XXXXXXXXXX`} |